#!/bin/bash
# 日志备份脚本：备份/var/log/nginx日志，删除7天前的备份

# 配置参数
SOURCE_DIR="/var/log/nginx"  # 源日志目录
BACKUP_DIR="/backup/nginx_logs"  # 备份存放目录
DATE=$(date +%Y%m%d)  # 当前日期（如20240722）
RETENTION_DAYS=7  # 备份保留天数

# 创建备份目录（若不存在）
mkdir -p $BACKUP_DIR

# 压缩备份日志（排除压缩包本身）
tar -czf $BACKUP_DIR/nginx_logs_$DATE.tar.gz -C $SOURCE_DIR . --exclude="*.tar.gz"

# 检查备份是否成功
if [ $? -eq 0 ]; then
    echo "[$(date)] 日志备份成功：$BACKUP_DIR/nginx_logs_$DATE.tar.gz" >> $BACKUP_DIR/backup.log
else
    echo "[$(date)] 日志备份失败！" >> $BACKUP_DIR/backup.log
    exit 1  # 备份失败退出
fi

# 删除7天前的旧备份
find $BACKUP_DIR -name "nginx_logs_*.tar.gz" -type f -mtime +$RETENTION_DAYS -delete

# 记录清理结果
echo "[$(date)] 已删除$RETENTION_DAYS天前的旧备份" >> $BACKUP_DIR/backup.log
